package cn.cdeden.knowledge.domain;

import cn.cdeden.knowledge.domain.dto.FilesShareDto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * 文件分享表
 */
@Data
@TableName(value = "files_share")
@NoArgsConstructor
@AllArgsConstructor
@AutoMappers({@AutoMapper(target = FilesShareDto.class)})
public class FilesShare {
    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 名称
     */
    @TableField(value = "`name`")
    private String name;

    /**
     * 分享人ID
     */
    @TableField(value = "person_id")
    private Long personId;

    /**
     * 分享人名称
     */
    @TableField(value = "person_name")
    private String personName;

    /**
     * 文件类型 文件夹/文件
     */
    @TableField(value = "file_type")
    private String fileType;

    /**
     * 文件ID
     */
    @TableField(value = "file_id")
    private String fileId;

    /**
     * 分享形式 1/2 加密/公开
     */
    @TableField(value = "share_form")
    private Integer shareForm;

    /**
     * 访问密码
     */
    @TableField(value = "`password`")
    private String password;

    /**
     * 过期时间
     */
    @TableField(value = "deadline")
    private Date deadline;

    /**
     * 访问权限:预览 0/1 不能/能
     */
    @TableField(value = "is_preview")
    private Integer isPreview;

    /**
     * 访问权限:下载 0/1 不能/能
     */
    @TableField(value = "is_download")
    private Integer isDownload;

    /**
     * 可访问次数
     */
    @TableField(value = "visits_number")
    private Integer visitsNumber;

    /**
     * 可下载次数
     */
    @TableField(value = "downloads_number")
    private Integer downloadsNumber;

    /**
     * 链接地址
     */
    @TableField(value = "link_address")
    private String linkAddress;

    /**
     * 随机hash值
     */
    @TableField(value = "hash")
    private String hash;

    /**
     * 0/1 失效/启用
     */
    @TableField(value = "`status`")
    private Integer status;

    /**
     * 可访问人ID
     */
    @TableField(value = "accessible_id")
    private String accessibleId;

    /**
     * 可访问的部门
     */
    @TableField(value = "accessible_dept_id")
    private String accessibleDeptId;

    /**
     * 团队编号
     */
    @TableField(value = "team_id")
    private String teamId;

    /**
     * 团队状态
     */
    @TableField(value = "team_type")
//    private String teamType;
    private boolean teamType = false;

    /**
     *  /个人/团队/企业
     */
    @TableField(value = "share_type")
    private String shareType;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 创建编号
     */
    @TableField(value = "create_id")
    private String createId;

    /**
     * 创建者
     */
    @TableField(value = "create_by")
    private String createBy;

    /**
     * 创建日期
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新编号
     */
    @TableField(value = "update_id")
    private String updateId;

    /**
     * 更新者
     */
    @TableField(value = "update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 删除编号
     */
    @TableField(value = "delete_id")
    private String deleteId;

    /**
     * 删除者
     */
    @TableField(value = "delete_by")
    private String deleteBy;

    /**
     * 删除时间
     */
    @TableField(value = "delete_time")
    private Date deleteTime;

    @TableField(value = "delete_type")
    private String deleteType;




}
